﻿using System;
using System.Collections.Generic;
using System.Text;

///Keep these local copies of COM types up to date with the original. They can be used
///to avoid direct dependence on COM DLLs.


namespace DVDVideoSoft.VideoFileToIPOD_EXTERN
{
    /// <summary>
    /// Must match COM TDVSConverterErrorCode enum.
    /// </summary>
    public enum TDVSConverterErrorCode
    {
        DVS_CONVERTER_ERROR_SUCCESS = 0,
        DVS_CONVERTER_ERROR_UNKNOWN = 1,
        DVS_CONVERTER_ERROR_INTERNAL = 2,
        DVS_CONVERTER_ERROR_INVALID_PRESET = 3,
        DVS_CONVERTER_ERROR_INVALID_INPUT_FILE_NAME = 4,
        DVS_CONVERTER_ERROR_INVALID_OUTPUT_FILE_NAME = 5,
        DVS_CONVERTER_ERROR_UNDEFINED_INPUT_FILE = 6,
        DVS_CONVERTER_ERROR_UNDEFINED_OUTPUT_FILE = 7,
        DVS_CONVERTER_ERROR_OPEN_FAILED = 8,
        DVS_CONVERTER_ERROR_DECODE_FAILED = 9,
        DVS_CONVERTER_ERROR_UNSUPPORTED_CODEC = 10,
        DVS_CONVERTER_ERROR_UNSUPPORTED_EXT_VIDEO_OPTIONS = 11,
        DVS_CONVERTER_ERROR_UNSUPPORTED_EXT_AUDIO_OPTIONS = 12,
        DVS_CONVERTER_ERROR_INVALID_EXT_VIDEO_OPTIONS = 13,
        DVS_CONVERTER_ERROR_INVALID_EXT_AUDIO_OPTIONS = 14,
        DVS_CONVERTER_ERROR_DAMAGED_INPUT_FILE = 15,
        DVS_CONVERTER_ERROR_CODEC_MISSING = 16,
        DVS_CONVERTER_ERROR_ENCODE_FAILED = 17,
    }

    //public enum TDVSVideoFormatType
    //{
    //    DVS_VIDEO_FORMAT_SAME_AS_INPUT = -3,
    //    DVS_VIDEO_FORMAT_RAW = -2,
    //    DVS_VIDEO_FORMAT_UNKNOWN = -1,
    //    DVS_VIDEO_FORMAT_MP4_MPEG4 = 0,
    //    DVS_VIDEO_FORMAT_AVI_XVID = 1,
    //    DVS_VIDEO_FORMAT_VOB_MPEG2 = 2,
    //    DVS_VIDEO_FORMAT_3GP_H263 = 3,
    //    DVS_VIDEO_FORMAT_PSP = 4,
    //    DVS_VIDEO_FORMAT_SWF = 5,
    //    DVS_VIDEO_FORMAT_FLV = 6,
    //    DVS_VIDEO_FORMAT_MJPEG = 7,
    //    DVS_VIDEO_FORMAT_DVD_JAMAICA = 12,
    //    DVS_VIDEO_FORMAT_DVD = 13,
    //    DVS_VIDEO_FORMAT_MPEG1 = 14,
    //    DVS_VIDEO_FORMAT_MP4_H264_MAIN = 21,
    //    DVS_VIDEO_FORMAT_MP4_H264_BASELINE = 22,
    //    DVS_VIDEO_FORMAT_MP4_H264_HIGH = 31,
    //    DVS_VIDEO_FORMAT_PSP_H264_HARD = 41,
    //    DVS_VIDEO_FORMAT_PSP_H264_LITE = 42,
    //    DVS_VIDEO_FORMAT_AVI_FOR_WII = 50,
    //    DVS_VIDEO_FORMAT_NINTENDO_DS = 51,
    //    DVS_VIDEO_FORMAT_MOV = 52,
    //    DVS_VIDEO_FORMAT_WEBM = 53,
    //    DVS_VIDEO_FORMAT_WMV = 54,
    //    DVS_VIDEO_FORMAT_MKV = 55,
    //    DVS_VIDEO_FORMAT_M2TS = 56,
    //    DVS_VIDEO_FORMAT_OGV = 57
    //}

    public enum TDVSAudioFormatType
    {
        DVS_AUDIO_FORMAT_SAME_AS_INPUT = -3,
        DVS_AUDIO_FORMAT_RAW = -2,
        DVS_AUDIO_FORMAT_UNKNOWN = -1,
        DVS_AUDIO_FORMAT_AAC = 0,
        DVS_AUDIO_FORMAT_MP3 = 1,
        DVS_AUDIO_FORMAT_MP2 = 2,
        DVS_AUDIO_FORMAT_AMR_NB = 3,
        DVS_AUDIO_FORMAT_AAC_2 = 4,
        DVS_AUDIO_FORMAT_OGG = 8,
        DVS_AUDIO_FORMAT_WAV = 9,
        DVS_AUDIO_FORMAT_WMAV2 = 10,
        DVS_AUDIO_FORMAT_MP4 = 11,
        DVS_AUDIO_FORMAT_FLAC = 12,
        DVS_AUDIO_FORMAT_ALAC = 13,
        DVS_AUDIO_FORMAT_AC3 = 14,
        DVS_AUDIO_FORMAT_PCM_S16LE = 20,
        DVS_AUDIO_FORMAT_PCM_S32LE = 21,
        DVS_AUDIO_FORMAT_PCM_U8 = 22,
        DVS_AUDIO_FORMAT_VORBIS = 23,
        DVS_AUDIO_FORMAT_M4A = 24,
    }
    
    public enum TDVSMediaCodecType
    {
        DVS_MEDIA_CODEC_ID_UNKNOWN,
        DVS_MEDIA_CODEC_ID_MPEG1VIDEO,
        DVS_MEDIA_CODEC_ID_MPEG2VIDEO,
        DVS_MEDIA_CODEC_ID_MPEG2VIDEO_XVMC,
        DVS_MEDIA_CODEC_ID_H261,
        DVS_MEDIA_CODEC_ID_H263,
        DVS_MEDIA_CODEC_ID_RV10,
        DVS_MEDIA_CODEC_ID_RV20,
        DVS_MEDIA_CODEC_ID_MJPEG,
        DVS_MEDIA_CODEC_ID_MJPEGB,
        DVS_MEDIA_CODEC_ID_LJPEG,
        DVS_MEDIA_CODEC_ID_SP5X,
        DVS_MEDIA_CODEC_ID_JPEGLS,
        DVS_MEDIA_CODEC_ID_MPEG4,
        DVS_MEDIA_CODEC_ID_RAWVIDEO,
        DVS_MEDIA_CODEC_ID_MSMPEG4V1,
        DVS_MEDIA_CODEC_ID_MSMPEG4V2,
        DVS_MEDIA_CODEC_ID_MSMPEG4V3,
        DVS_MEDIA_CODEC_ID_WMV1,
        DVS_MEDIA_CODEC_ID_WMV2,
        DVS_MEDIA_CODEC_ID_H263P,
        DVS_MEDIA_CODEC_ID_H263I,
        DVS_MEDIA_CODEC_ID_FLV1,
        DVS_MEDIA_CODEC_ID_SVQ1,
        DVS_MEDIA_CODEC_ID_SVQ3,
        DVS_MEDIA_CODEC_ID_DVVIDEO,
        DVS_MEDIA_CODEC_ID_HUFFYUV,
        DVS_MEDIA_CODEC_ID_CYUV,
        DVS_MEDIA_CODEC_ID_H264,
        DVS_MEDIA_CODEC_ID_INDEO3,
        DVS_MEDIA_CODEC_ID_VP3,
        DVS_MEDIA_CODEC_ID_THEORA,
        DVS_MEDIA_CODEC_ID_ASV1,
        DVS_MEDIA_CODEC_ID_ASV2,
        DVS_MEDIA_CODEC_ID_FFV1,
        DVS_MEDIA_CODEC_ID_4XM,
        DVS_MEDIA_CODEC_ID_VCR1,
        DVS_MEDIA_CODEC_ID_CLJR,
        DVS_MEDIA_CODEC_ID_MDEC,
        DVS_MEDIA_CODEC_ID_ROQ,
        DVS_MEDIA_CODEC_ID_INTERPLAY_VIDEO,
        DVS_MEDIA_CODEC_ID_XAN_WC3,
        DVS_MEDIA_CODEC_ID_XAN_WC4,
        DVS_MEDIA_CODEC_ID_RPZA,
        DVS_MEDIA_CODEC_ID_CINEPAK,
        DVS_MEDIA_CODEC_ID_WS_VQA,
        DVS_MEDIA_CODEC_ID_MSRLE,
        DVS_MEDIA_CODEC_ID_MSVIDEO1,
        DVS_MEDIA_CODEC_ID_IDCIN,
        DVS_MEDIA_CODEC_ID_8BPS,
        DVS_MEDIA_CODEC_ID_SMC,
        DVS_MEDIA_CODEC_ID_FLIC,
        DVS_MEDIA_CODEC_ID_TRUEMOTION1,
        DVS_MEDIA_CODEC_ID_VMDVIDEO,
        DVS_MEDIA_CODEC_ID_MSZH,
        DVS_MEDIA_CODEC_ID_ZLIB,
        DVS_MEDIA_CODEC_ID_QTRLE,
        DVS_MEDIA_CODEC_ID_SNOW,
        DVS_MEDIA_CODEC_ID_TSCC,
        DVS_MEDIA_CODEC_ID_ULTI,
        DVS_MEDIA_CODEC_ID_QDRAW,
        DVS_MEDIA_CODEC_ID_VIXL,
        DVS_MEDIA_CODEC_ID_QPEG,
        DVS_MEDIA_CODEC_ID_XVID,
        DVS_MEDIA_CODEC_ID_PNG,
        DVS_MEDIA_CODEC_ID_PPM,
        DVS_MEDIA_CODEC_ID_PBM,
        DVS_MEDIA_CODEC_ID_PGM,
        DVS_MEDIA_CODEC_ID_PGMYUV,
        DVS_MEDIA_CODEC_ID_PAM,
        DVS_MEDIA_CODEC_ID_FFVHUFF,
        DVS_MEDIA_CODEC_ID_RV30,
        DVS_MEDIA_CODEC_ID_RV40,
        DVS_MEDIA_CODEC_ID_VC1,
        DVS_MEDIA_CODEC_ID_WMV3,
        DVS_MEDIA_CODEC_ID_LOCO,
        DVS_MEDIA_CODEC_ID_WNV1,
        DVS_MEDIA_CODEC_ID_AASC,
        DVS_MEDIA_CODEC_ID_INDEO2,
        DVS_MEDIA_CODEC_ID_FRAPS,
        DVS_MEDIA_CODEC_ID_TRUEMOTION2,
        DVS_MEDIA_CODEC_ID_BMP,
        DVS_MEDIA_CODEC_ID_CSCD,
        DVS_MEDIA_CODEC_ID_MMVIDEO,
        DVS_MEDIA_CODEC_ID_ZMBV,
        DVS_MEDIA_CODEC_ID_AVS,
        DVS_MEDIA_CODEC_ID_SMACKVIDEO,
        DVS_MEDIA_CODEC_ID_NUV,
        DVS_MEDIA_CODEC_ID_KMVC,
        DVS_MEDIA_CODEC_ID_FLASHSV,
        DVS_MEDIA_CODEC_ID_CAVS,
        DVS_MEDIA_CODEC_ID_JPEG2000,
        DVS_MEDIA_CODEC_ID_VMNC,
        DVS_MEDIA_CODEC_ID_VP5,
        DVS_MEDIA_CODEC_ID_VP6,
        DVS_MEDIA_CODEC_ID_VP6F,
        DVS_MEDIA_CODEC_ID_TARGA,
        DVS_MEDIA_CODEC_ID_DSICINVIDEO,
        DVS_MEDIA_CODEC_ID_TIERTEXSEQVIDEO,
        DVS_MEDIA_CODEC_ID_TIFF,
        DVS_MEDIA_CODEC_ID_GIF,
        DVS_MEDIA_CODEC_ID_FFH264,
        DVS_MEDIA_CODEC_ID_DXA,
        DVS_MEDIA_CODEC_ID_DNXHD,
        DVS_MEDIA_CODEC_ID_THP,
        DVS_MEDIA_CODEC_ID_SGI,
        DVS_MEDIA_CODEC_ID_C93,
        DVS_MEDIA_CODEC_ID_BETHSOFTVID,
        DVS_MEDIA_CODEC_ID_PTX,
        DVS_MEDIA_CODEC_ID_TXD,
        DVS_MEDIA_CODEC_ID_VP6A,
        DVS_MEDIA_CODEC_ID_AMV,
        DVS_MEDIA_CODEC_ID_VB,
        DVS_MEDIA_CODEC_ID_PCX,
        DVS_MEDIA_CODEC_ID_SUNRAST,
        DVS_MEDIA_CODEC_ID_INDEO4,
        DVS_MEDIA_CODEC_ID_INDEO5,
        DVS_MEDIA_CODEC_ID_MIMIC,
        DVS_MEDIA_CODEC_ID_RL2,
        DVS_MEDIA_CODEC_ID_8SVX_EXP,
        DVS_MEDIA_CODEC_ID_8SVX_FIB,
        DVS_MEDIA_CODEC_ID_ESCAPE124,
        DVS_MEDIA_CODEC_ID_DIRAC,
        DVS_MEDIA_CODEC_ID_BFI,
        DVS_MEDIA_CODEC_ID_CMV,
        DVS_MEDIA_CODEC_ID_MOTIONPIXELS,
        DVS_MEDIA_CODEC_ID_TGV,
        DVS_MEDIA_CODEC_ID_TGQ,
        DVS_MEDIA_CODEC_ID_TQI,
        DVS_MEDIA_CODEC_ID_AURA,
        DVS_MEDIA_CODEC_ID_AURA2,
        DVS_MEDIA_CODEC_ID_V210X,
        DVS_MEDIA_CODEC_ID_TMV,
        DVS_MEDIA_CODEC_ID_V210,
        DVS_MEDIA_CODEC_ID_DPX,
        DVS_MEDIA_CODEC_ID_MAD,
        DVS_MEDIA_CODEC_ID_FRWU,
        DVS_MEDIA_CODEC_ID_FLASHSV2,
        DVS_MEDIA_CODEC_ID_CDGRAPHICS,
        DVS_MEDIA_CODEC_ID_R210,
        DVS_MEDIA_CODEC_ID_ANM,
        DVS_MEDIA_CODEC_ID_PCM_S16LE = 0x10000,
        DVS_MEDIA_CODEC_ID_PCM_S16BE,
        DVS_MEDIA_CODEC_ID_PCM_U16LE,
        DVS_MEDIA_CODEC_ID_PCM_U16BE,
        DVS_MEDIA_CODEC_ID_PCM_S8,
        DVS_MEDIA_CODEC_ID_PCM_U8,
        DVS_MEDIA_CODEC_ID_PCM_MULAW,
        DVS_MEDIA_CODEC_ID_PCM_ALAW,
        DVS_MEDIA_CODEC_ID_PCM_S32LE,
        DVS_MEDIA_CODEC_ID_PCM_S32BE,
        DVS_MEDIA_CODEC_ID_PCM_U32LE,
        DVS_MEDIA_CODEC_ID_PCM_U32BE,
        DVS_MEDIA_CODEC_ID_PCM_S24LE,
        DVS_MEDIA_CODEC_ID_PCM_S24BE,
        DVS_MEDIA_CODEC_ID_PCM_U24LE,
        DVS_MEDIA_CODEC_ID_PCM_U24BE,
        DVS_MEDIA_CODEC_ID_PCM_S24DAUD,
        DVS_MEDIA_CODEC_ID_PCM_ZORK,
        DVS_MEDIA_CODEC_ID_PCM_S16LE_PLANAR,
        DVS_MEDIA_CODEC_ID_PCM_DVD,
        DVS_MEDIA_CODEC_ID_PCM_F32BE,
        DVS_MEDIA_CODEC_ID_PCM_F32LE,
        DVS_MEDIA_CODEC_ID_PCM_F64BE,
        DVS_MEDIA_CODEC_ID_PCM_F64LE,
        DVS_MEDIA_CODEC_ID_PCM_BLURAY,
        DVS_MEDIA_CODEC_ID_ADPCM_IMA_QT = 0x11000,
        DVS_MEDIA_CODEC_ID_ADPCM_IMA_WAV,
        DVS_MEDIA_CODEC_ID_ADPCM_IMA_DK3,
        DVS_MEDIA_CODEC_ID_ADPCM_IMA_DK4,
        DVS_MEDIA_CODEC_ID_ADPCM_IMA_WS,
        DVS_MEDIA_CODEC_ID_ADPCM_IMA_SMJPEG,
        DVS_MEDIA_CODEC_ID_ADPCM_MS,
        DVS_MEDIA_CODEC_ID_ADPCM_4XM,
        DVS_MEDIA_CODEC_ID_ADPCM_XA,
        DVS_MEDIA_CODEC_ID_ADPCM_ADX,
        DVS_MEDIA_CODEC_ID_ADPCM_EA,
        DVS_MEDIA_CODEC_ID_ADPCM_G726,
        DVS_MEDIA_CODEC_ID_ADPCM_CT,
        DVS_MEDIA_CODEC_ID_ADPCM_SWF,
        DVS_MEDIA_CODEC_ID_ADPCM_YAMAHA,
        DVS_MEDIA_CODEC_ID_ADPCM_SBPRO_4,
        DVS_MEDIA_CODEC_ID_ADPCM_SBPRO_3,
        DVS_MEDIA_CODEC_ID_ADPCM_SBPRO_2,
        DVS_MEDIA_CODEC_ID_ADPCM_THP,
        DVS_MEDIA_CODEC_ID_ADPCM_IMA_AMV,
        DVS_MEDIA_CODEC_ID_ADPCM_EA_R1,
        DVS_MEDIA_CODEC_ID_ADPCM_EA_R3,
        DVS_MEDIA_CODEC_ID_ADPCM_EA_R2,
        DVS_MEDIA_CODEC_ID_ADPCM_IMA_EA_SEAD,
        DVS_MEDIA_CODEC_ID_ADPCM_IMA_EA_EACS,
        DVS_MEDIA_CODEC_ID_ADPCM_EA_XAS,
        DVS_MEDIA_CODEC_ID_ADPCM_EA_MAXIS_XA,
        DVS_MEDIA_CODEC_ID_ADPCM_IMA_ISS,
        DVS_MEDIA_CODEC_ID_AMR_NB = 0x12000,
        DVS_MEDIA_CODEC_ID_AMR_WB,
        DVS_MEDIA_CODEC_ID_RA_144 = 0x13000,
        DVS_MEDIA_CODEC_ID_RA_288,
        DVS_MEDIA_CODEC_ID_ROQ_DPCM = 0x14000,
        DVS_MEDIA_CODEC_ID_INTERPLAY_DPCM,
        DVS_MEDIA_CODEC_ID_XAN_DPCM,
        DVS_MEDIA_CODEC_ID_SOL_DPCM,
        DVS_MEDIA_CODEC_ID_MP2 = 0x15000,
        DVS_MEDIA_CODEC_ID_MP3,
        DVS_MEDIA_CODEC_ID_AAC,
        DVS_MEDIA_CODEC_ID_AC3,
        DVS_MEDIA_CODEC_ID_DTS,
        DVS_MEDIA_CODEC_ID_VORBIS,
        DVS_MEDIA_CODEC_ID_DVAUDIO,
        DVS_MEDIA_CODEC_ID_WMAV1,
        DVS_MEDIA_CODEC_ID_WMAV2,
        DVS_MEDIA_CODEC_ID_MACE3,
        DVS_MEDIA_CODEC_ID_MACE6,
        DVS_MEDIA_CODEC_ID_VMDAUDIO,
        DVS_MEDIA_CODEC_ID_SONIC,
        DVS_MEDIA_CODEC_ID_SONIC_LS,
        DVS_MEDIA_CODEC_ID_FLAC,
        DVS_MEDIA_CODEC_ID_MP3ADU,
        DVS_MEDIA_CODEC_ID_MP3ON4,
        DVS_MEDIA_CODEC_ID_SHORTEN,
        DVS_MEDIA_CODEC_ID_ALAC,
        DVS_MEDIA_CODEC_ID_WESTWOOD_SND1,
        DVS_MEDIA_CODEC_ID_GSM,
        DVS_MEDIA_CODEC_ID_QDM2,
        DVS_MEDIA_CODEC_ID_COOK,
        DVS_MEDIA_CODEC_ID_TRUESPEECH,
        DVS_MEDIA_CODEC_ID_TTA,
        DVS_MEDIA_CODEC_ID_SMACKAUDIO,
        DVS_MEDIA_CODEC_ID_QCELP,
        DVS_MEDIA_CODEC_ID_WAVPACK,
        DVS_MEDIA_CODEC_ID_DSICINAUDIO,
        DVS_MEDIA_CODEC_ID_IMC,
        DVS_MEDIA_CODEC_ID_MUSEPACK7,
        DVS_MEDIA_CODEC_ID_MLP,
        DVS_MEDIA_CODEC_ID_GSM_MS,
        DVS_MEDIA_CODEC_ID_ATRAC3,
        DVS_MEDIA_CODEC_ID_VOXWARE,
        DVS_MEDIA_CODEC_ID_APE,
        DVS_MEDIA_CODEC_ID_NELLYMOSER,
        DVS_MEDIA_CODEC_ID_MUSEPACK8,
        DVS_MEDIA_CODEC_ID_SPEEX,
        DVS_MEDIA_CODEC_ID_WMAVOICE,
        DVS_MEDIA_CODEC_ID_WMAPRO,
        DVS_MEDIA_CODEC_ID_WMALOSSLESS,
        DVS_MEDIA_CODEC_ID_ATRAC3P,
        DVS_MEDIA_CODEC_ID_EAC3,
        DVS_MEDIA_CODEC_ID_SIPR,
        DVS_MEDIA_CODEC_ID_MP1,
        DVS_MEDIA_CODEC_ID_TWINVQ,
        DVS_MEDIA_CODEC_ID_TRUEHD,
        DVS_MEDIA_CODEC_ID_MP4ALS,
        DVS_MEDIA_CODEC_ID_ATRAC1,
        DVS_MEDIA_CODEC_ID_DVD_SUBTITLE = 0x17000,
        DVS_MEDIA_CODEC_ID_DVB_SUBTITLE,
        DVS_MEDIA_CODEC_ID_TEXT,
        DVS_MEDIA_CODEC_ID_XSUB,
        DVS_MEDIA_CODEC_ID_SSA,
        DVS_MEDIA_CODEC_ID_MOV_TEXT,
        DVS_MEDIA_CODEC_ID_HDMV_PGS_SUBTITLE,
        DVS_MEDIA_CODEC_ID_DVB_TELETEXT,
        DVS_MEDIA_CODEC_ID_VP8,
        DVS_MEDIA_CODEC_ID_H264_BASELINE,
        DVS_MEDIA_CODEC_ID_H264_MAIN,
        DVS_MEDIA_CODEC_ID_H264_HIGH,
    }

    public enum EMediaContainerType
    {
        K_MEDIA_CONTAINER_SAME_AS_INPUT	   = -1,
		K_MEDIA_CONTAINER_UNKNOWN          =  0,
		K_MEDIA_CONTAINER_MP4              =  1,
		K_MEDIA_CONTAINER_AVI              =  2,    
		K_MEDIA_CONTAINER_3GP              =  3,
		K_MEDIA_CONTAINER_PSP              =  4,
		K_MEDIA_CONTAINER_SWF              =  5,
		K_MEDIA_CONTAINER_FLV              =  6,
		K_MEDIA_CONTAINER_JPG              =  7,
		K_MEDIA_CONTAINER_DVD              =  8,
		K_MEDIA_CONTAINER_MKV              =  9,
		K_MEDIA_CONTAINER_MP3              = 10,
		K_MEDIA_CONTAINER_OGG              = 11,
		K_MEDIA_CONTAINER_WAV              = 12,
		K_MEDIA_CONTAINER_ASF              = 13,
		K_MEDIA_CONTAINER_FLAC             = 14,
		K_MEDIA_CONTAINER_VOB              = 15,
		K_MEDIA_CONTAINER_MOV              = 16,
		K_MEDIA_CONTAINER_M2TS             = 17,
		K_MEDIA_CONTAINER_WMV              = 18,
		K_MEDIA_CONTAINER_M4A              = 19,
		K_MEDIA_CONTAINER_ALAC             = 20,
		K_MEDIA_CONTAINER_M4R              = 21,
		K_MEDIA_CONTAINER_AAC              = 22,
		K_MEDIA_CONTAINER_WMA              = 23,
		K_MEDIA_CONTAINER_AMR              = 24,
		K_MEDIA_CONTAINER_MPG              = 25,
		K_MEDIA_CONTAINER_WEBM             = 26,
    
		K_MEDIA_CONTAINER_IMAGE			   = 30,
		K_MEDIA_CONTAINER_MPEG
    };

    public enum EVideoCodecType
    {
        K_MEDIA_CODEC_ID_SAME_AS_INPUT  = -1,
		K_MEDIA_CODEC_ID_UNKNOWN		= 0,
		K_MEDIA_CODEC_ID_MJPEG			= 10,
		K_MEDIA_CODEC_ID_MPEG1			= 20,
		K_MEDIA_CODEC_ID_MPEG2,
		K_MEDIA_CODEC_ID_MPEG4,
		K_MEDIA_CODEC_ID_XVID			= 30,
		K_MEDIA_CODEC_ID_H263			= 40,
		K_MEDIA_CODEC_ID_H264_BASELINE,
		K_MEDIA_CODEC_ID_H264_MAIN,
		K_MEDIA_CODEC_ID_H264_HIGH,
		K_MEDIA_CODEC_ID_H264_HARD,
		K_MEDIA_CODEC_ID_H264_LITE,
		K_MEDIA_CODEC_ID_WMV2			= 50,
		K_MEDIA_CODEC_ID_WMV3,
		K_MEDIA_CODEC_ID_THEORA			= 60,
		K_MEDIA_CODEC_ID_VP8,
		K_MEDIA_CODEC_ID_DVD_JAMAICA	= 70
    };

    public enum EConverterProperty
    {
        kDummyConvProp = 0,
        kAccelerateEncodingConvProp = 1, // 1/0 - enable/disable
        kInitializedAcceleratorConvProp, // EGpuTranscoder
        kActiveAcceleratorConvProp, // EGpuTranscoder
        kSuitableRawAudioFormat,
        kSuitableRawVideoFormat,
        kFlipAndRotate,
    };

    public enum EFlipAndRotate
    {
        kFlipAndRotate_None = -1,
        kFlipAndRotate_CounterClockwise90 = 0,
        kFlipAndRotate_180,
        kFlipAndRotate_Clockwise90,
        kFlipAndRotate_VerticalFlip,
        kFlipAndRotate_HorizontalFlip,
        kFlipAndRotate_CounterClockwise90Flip,
        kFlipAndRotate_Clockwise90Flip,
    };

    public enum EGpuTranscoder
    {
        kGpu_None = 0,
        kGpu_CUDA,
        kGpu_ATI,
    }

}
